<html><head><title>cfg file module reference</title>
<link rel=stylesheet Type=text/css href='../../../../doc/bmxstyle.css'>
</head><body>
<table width=100% cellspacing=0><tr align=center><td class=small>&nbsp;</td>
<td class=small width=1%><b>jmd.cfg:</b></td>
<td class=small width=1%><a href=#consts class=small>Constants</a></td>
<td class=small width=1%><a href=#functions class=small>Functions</a></td>
<td class=small width=1%><a href=#types class=small>Types</a></td>
<td class=small width=1%><a href=#modinfo class=small>Modinfo</a></td>
<td class=small width=1%><a href='../../../../mod/jmd.mod/cfg.mod/cfg.bmx' class=small>Source</a></td>
<td class=small>&nbsp;</td></tr></table>
<h1>cfg file module</h1>
Use this module to work with .ini/.cfg style configuration files.
This module stores the config file in local memory, and provides functions to
read from and write to this data in local memory, as well as read and write
the data to and from the hard drive. Blank lines, whitespace and comments are
all supported.
<p>
Configuration data is thought of as existing in key/value pairs in the format of:
<pre>
key=value
</pre>
<p>
For example, look at this sample configuration file:
<pre>
app_width=640
app_height=480
highscore=1000000
;This is a comment!
fullscreen=1
title=My Custom Application ;comment is ignored
</pre>
<p>
This module also has the unique feature of having defaults. If a key in the config file
does not have a value, or the key/value pair is missing all together, a default value is
automatically used!
<h2><a name=consts></a>Constants Summary</h2><table class=doc width=100%><tr><td colspan=2>
<a href=#CFG_NOVALUE>CFG_NOVALUE</a>
, 
<a href=#CFG_VALUE_CREATED>CFG_VALUE_CREATED</a>
, 
<a href=#CFG_VALUE_UPDATED>CFG_VALUE_UPDATED</a>
</td></tr>
</table>
<h2><a name=functions></a>Functions Summary</h2><table class=doc width=100%>
<tr><td class=docleft width=1%><a href=#ConfigAdd>ConfigAdd</a></td><td class=docright>
Add a new key/value pair to the end of the config file.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigClear>ConfigClear</a></td><td class=docright>
Clear/Reset the TConfig instance.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigContains>ConfigContains</a></td><td class=docright>
See if the config file contains a given key.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigGetDefault>ConfigGetDefault</a></td><td class=docright>
Get the stored default for the given key.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigGetFloat>ConfigGetFloat</a></td><td class=docright>
Get the specified key's value.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigGetInt>ConfigGetInt</a></td><td class=docright>
Get the specified key's value.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigGetOptionPath>ConfigGetOptionPath</a></td><td class=docright>
Returns a path value stored with the given key.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigGetString>ConfigGetString</a></td><td class=docright>
Get the specified key's value.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigRead>ConfigRead</a></td><td class=docright>
Read in the config file.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigRemove>ConfigRemove</a></td><td class=docright>
remove a key/value pair.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigSetDefault>ConfigSetDefault</a></td><td class=docright>
Set a <i>single</i> default value.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigSetDefaults>ConfigSetDefaults</a></td><td class=docright>
Set <i>multiple</i> default values with a <a href=#Tmap>Tmap</a>.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigUpdate>ConfigUpdate</a></td><td class=docright>
Update the value of the given key.
</td></tr>
<tr><td class=docleft width=1%><a href=#ConfigWrite>ConfigWrite</a></td><td class=docright>
Write out a cfg file.
</td></tr>
<tr><td class=docleft width=1%><a href=#CreateConfig>CreateConfig</a></td><td class=docright>
Create a new TConfig instance.
</td></tr>
</table>
<h2><a name=types></a>Types Summary</h2><table class=doc width=100%>
<tr><td class=docleft width=1%><a href=#TConfig>TConfig</a></td><td class=docright>
TConfig type.
</td></tr>
</table>
<h2
 id=constsdet>Constants
</h2>
<table class=doc width=100% cellspacing=3 id=CFG_NOVALUE>
<tr><td class=doctop colspan=2>Const CFG_NOVALUE:Int</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>TConfig constant.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Returned from <a href=#ConfigUpdate>ConfigUpdate</a>() if the key/value pair is not present in the config file and the <b>autoCreate</b> parameter is false.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=CFG_VALUE_CREATED>
<tr><td class=doctop colspan=2>Const CFG_VALUE_CREATED:Int</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>TConfig constant.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Returned from <a href=#ConfigUpdate>ConfigUpdate</a>() if the key/value pair is not present in the config file and the <b>autoCreate</b> parameter is True.
(This effectively means that the key/value pair was added if it didn't already exist)</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=CFG_VALUE_UPDATED>
<tr><td class=doctop colspan=2>Const CFG_VALUE_UPDATED:Int</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>TConfig constant.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Returned from <a href=#ConfigUpdate>ConfigUpdate</a>() if the key/value pair was successfully updated.</td></tr>
</table>
<br>
<h2
 id=functionsdet>Functions
</h2>
<table class=doc width=100% cellspacing=3 id=ConfigAdd>
<tr><td class=doctop colspan=2>Function ConfigAdd(thisConfig:TConfig,thisKey:String,thisValue:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Add a new key/value pair to the end of the config file.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This updates the internal representation of the config file. To have changes reflected
in the actual config file, make sure to save the changes with the <a href=#ConfigWrite>ConfigWrite</a>() function!
<p>
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigAdd(cfg,"author","John Doe")
ConfigWrite(cfg)
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigClear>
<tr><td class=doctop colspan=2>Function ConfigClear(thisConfig:TConfig)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Clear/Reset the TConfig instance.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Completely clears the TConfig instances internal fields. Note that you will have to
manually set the filepath field if you want to continue using this instance after
calling <a href=#ConfigClear>ConfigClear</a>()!
<p>
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigSetDefault(cfg,"title","My Application")
appTitle:string=ConfigGetString(cfg,"title")
ConfigClear(cfg)
cfg.filePath="./othersettings.ini"
ConfigRead(cfg)
ConfigSetDefault(cfg,"version","1.0")
myVersion:string=ConfigGetString(cfg,"version")
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigContains>
<tr><td class=doctop colspan=2>Function ConfigContains:Int(thisConfig:TConfig,thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>See if the config file contains a given key.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Return True if the config file contains the key, return False otherwise.
Example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
if not ConfigContains(cfg,"author")
ConfigAdd(cfg,"author","John Doe")
endif
ConfigWrite(cfg)
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigGetDefault>
<tr><td class=doctop colspan=2>Function ConfigGetDefault:String(thisConfig:TConfig,thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the stored default for the given key.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This is a convenienc function which returns the default stored for the given key,
or an empty string otherwise.
<p>
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
print ConfigGetDefault(cfg,"person")
ConfigAddDefault(cfg,"person","unknown")
print ConfigGetDefault(cfg,"person")
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigGetFloat>
<tr><td class=doctop colspan=2>Function ConfigGetFloat:Float(thisConfig:TConfig,thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the specified key's value.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Returns the the specified key's value as an int.
If the <a href=#ConfigSetDefault>ConfigSetDefault</a>() or <a href=#ConfigSetDefaults>ConfigSetDefaults</a>() functionss were used, this function will return the
default if the config file does not contain the key searched for.
<p>
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigSetDefault(cfg,"rotation_z","358.9")
thisRot:Float=ConfigGetFloat("rotation_z")
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigGetInt>
<tr><td class=doctop colspan=2>Function ConfigGetInt:Int(thisConfig:TConfig,thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the specified key's value.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Returns the the specified key's value as an int.
If the <a href=#ConfigSetDefault>ConfigSetDefault</a>() or <a href=#ConfigSetDefaults>ConfigSetDefaults</a>() functionss were used, this function will return the
default if the config file does not contain the key searched for.
<p>
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigSetDefault(cfg,"high_score","0")
thisScore:int=ConfigGetInt(cfg,"high_score")
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigGetOptionPath>
<tr><td class=doctop colspan=2>Function ConfigGetOptionPath:String(thisConfig:TConfig,thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns a path value stored with the given key.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This is a convenience function to help construct usful paths from the config file.
If the stored path has no directory information, then it is assumed to reside in the same
directory as the config file and a true path is returned - otherwise, the actual
value is returned.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigGetString>
<tr><td class=doctop colspan=2>Function ConfigGetString:String(thisConfig:TConfig,thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the specified key's value.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Returns the the specified key's value as a string.
If the <a href=#ConfigSetDefault>ConfigSetDefault</a>() or <a href=#ConfigSetDefaults>ConfigSetDefaults</a>() functionss were used, this functiond will return the
default if the config file does not contain the key searched for.
<p>
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigSetDefault(cfg,"name","Unknown")
thisperson:string=ConfigGetString(cfg,"name")
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigRead>
<tr><td class=doctop colspan=2>Function ConfigRead(thisConfig:TConfig)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Read in the config file.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Can be used to read, or re-read a config file from the hard drive
<p>
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigRemove>
<tr><td class=doctop colspan=2>Function ConfigRemove(thisConfig:TConfig,thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>remove a key/value pair.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Removes the key/value pair from the config file.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigSetDefault>
<tr><td class=doctop colspan=2>Function ConfigSetDefault(thisConfig:TConfig,thisKey:String,thisValue:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Set a <i>single</i> default value.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Defaults are used in cases where either no value was assigned to a key in the config file,
or if the key its self wasn't present in the config file.
<p>
example:
<pre>
local cfg:TConfig = TConfig.Create("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigSetDefault(cfg,"app_width","1024")
thisWidth:int=ConfigGetInt(cfg,"app_width")
</pre>
<p>
note: Key values are entered as a string, regardless of the actual data type.
<a href=#ConfigGetInt>ConfigGetInt</a>(), <a href=#ConfigGetFloat>ConfigGetFloat</a>() and <a href=#ConfigGetString>ConfigGetString</a>() are used while retreiving
the value to cast it to the correct data type!</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigSetDefaults>
<tr><td class=doctop colspan=2>Function ConfigSetDefaults(thisConfig:TConfig,thisMap:TMap)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Set <i>multiple</i> default values with a <a href=#Tmap>Tmap</a>.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Defaults are used in cases where either no value was assigned to a key in the config file,
or if the key its self wasn't present in the config file.
<p>
example:
<pre>
defaults:TMap=CreateMap()
defaults.insert("app_width","1024")
defaults.insert("app_height","768")
defaults.insert("debug_mode","1")
<p>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigSetDefaults(cfg,defaults) 'pass in our map of default key/value pairs
thisWidth:int=ConfigGetInt("app_width") 'if the app_width key is not present in the ini file,
'the default we set earlier will be returned!
</pre>
<p>
note: Key values are entered as a string, regardless of the actual data type.
<a href=#ConfigGetInt>ConfigGetInt</a>(), <a href=#ConfigGetFloat>ConfigGetFloat</a>() and <a href=#ConfigGetString>ConfigGetString</a>() are used while retreiving
the value to cast it to the correct data type!</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigUpdate>
<tr><td class=doctop colspan=2>Function ConfigUpdate:Int(thisConfig:TConfig,thisKey:String,thisValue:String,autoCreate:Int=False)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Update the value of the given key.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>The autoCreate parameter will create the key/value pair if it does not exist.
<p>
return values:
<table><tr><td>
</td></tr><tr><td><b>CFG_VALUE_UPDATED</b></td><td>if it updated the value
</td></tr><tr><td><b>CFG_VALUE_CREATED</b></td><td>if the value had to be created
</td></tr><tr><td><b>CFG_NOVALUE</b> </td><td>if the value doesn't exist and wasn't created</table>
<p>

example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigAdd(cfg,"author","John Doe")
ConfigUpdate(cfg,"author","Jane Doe")
ConfigWrite(cfg)
</pre>
<p>
note: Key values are entered as a string, regardless of the actual data type.
<a href=#ConfigGetInt>ConfigGetInt</a>(), <a href=#ConfigGetFloat>ConfigGetFloat</a>() and <a href=#ConfigGetString>ConfigGetString</a>() are used while retreiving
the value to cast it to the correct data type!</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ConfigWrite>
<tr><td class=doctop colspan=2>Function ConfigWrite(thisConfig:TConfig)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Write out a cfg file.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>After local changes are made with the <a href=#ConfigUpdate>ConfigUpdate</a> or <a href=#ConfigAdd>ConfigAdd</a> functionss, these changes
must be written out to the file with this function  to save the changes in the actual
config file.
<p>
example:
<pre>
local cfg:TConfig = TConfig.Create("./settings.ini",false) 'TConfig instance
ConfigRead(cfg)
ConfigUpdate(cfg,"app_width","1024",true)
ConfigWrite(cfg)
</pre></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=CreateConfig>
<tr><td class=doctop colspan=2>Function CreateConfig:TConfig(thisPath:String,autoRead:Int=False)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Create a new TConfig instance.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Pass in a path to a config/ini file to the <b>thisPath</b> parameter.
Optional <b>autoRead</b> parameter will automatically execute the <a href=#ConfigRead>ConfigRead</a>() method (defaults to <b>False</b>).
example:
<pre>
local cfg:TConfig = CreateConfig("./settings.ini",true)
</pre>
<p>
Alternatively you can use the <b>TConfig.Create</b>() function.</td></tr>
<tr><td class=docleft width=1%><a href=CreateConfig.bmx class=small>Example</a></td><td class=docright><pre>SuperStrict

Import jmd.cfg

'Create a new instance and read in the file
Global cfg:TConfig=CreateConfig("config.ini")
ConfigRead(cfg) 'note, could have used autoRead parameter in the CreateConfig() function above

'Set up defaults, and load them in!
Local defaults:TMap = CreateMap()
defaults.insert("app_width","1024")
defaults.insert("app_height","768")
defaults.insert("title","Example TConfig usage")
defaults.insert("name","John Doe") 'this key/value pair was purposely left out of config.ini to show that the default works
ConfigSetDefaults(cfg,defaults)

'Get the information!
Print "Application Width: " + ConfigGetString(cfg,"app_width")
Print "Application Height: " + ConfigGetString(cfg,"app_height")
Print "Title: " + ConfigGetString(cfg,"title")
Print "Name: " + ConfigGetString(cfg,"name")

'Now lets make some changes!
ConfigUpdate(cfg,"name","Jane Doe",False) 'Since it doesn't exist, and the autoCreate parameter is false, nothing will happen!
'Notice that it doesn't work this time
Print "Name: " + ConfigGetString(cfg,"name")
ConfigUpdate(cfg,"name","Jane Doe",True) 'Now the autoCreate parameter is true! Note that this change won't permanently be saved to the file unless we call the ConfigWrite() function
'But now it does thanks to the autoCreate parameter being true!
Print "Name: " + ConfigGetString(cfg,"name")

'Now, lets try to get the value for a key that doesn't exist!
Print "Random number: " + ConfigGetString(cfg,"random")
'Lets add it!
ConfigAdd(cfg,"random",String(Rnd(1,10)))
Print "Random number: " + ConfigGetString(cfg,"random")

'Check to see if certain key/value pairs exist
If ConfigContains(cfg,"name")
	Print "name key found!"
Else
	Print "name key NOT found!"
EndIf

If ConfigContains(cfg,"address")
	Print "address key found!"
Else
	Print "address key NOT found!"
EndIf

'Uncomment below, and the changes will be saved to the file!
'ConfigWrite(cfg)</pre></td></tr>
</table>
<br>
<h2
 id=typesdet>Types
</h2>
<table class=doc width=100% cellspacing=3 id=TConfig>
<tr><td class=doctop colspan=2>Type TConfig</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>TConfig type.</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=TConfig_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#Add>Add</a></td><td class=docright>
alternative for <a href=#ConfigAdd>ConfigAdd</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#Clear>Clear</a></td><td class=docright>
alternative for <a href=#ConfigClear>ConfigClear</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#Contains>Contains</a></td><td class=docright>
alternative for <a href=#ConfigContains>ConfigContains</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#GetDefault>GetDefault</a></td><td class=docright>
alternative for <a href=#ConfigGetDefault>ConfigGetDefault</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#GetFloat>GetFloat</a></td><td class=docright>
alternative for <a href=#ConfigGetFloat>ConfigGetFloat</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#GetInt>GetInt</a></td><td class=docright>
alternative for <a href=#ConfigGetInt>ConfigGetInt</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#GetOptionPath>GetOptionPath</a></td><td class=docright>
alternative for <a href=#ConfigGetOptionPath>ConfigGetOptionPath</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#GetString>GetString</a></td><td class=docright>
alternative for <a href=#ConfigGetString>ConfigGetString</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#Read>Read</a></td><td class=docright>
alternative for <a href=#ConfigRead>ConfigRead</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#Remove>Remove</a></td><td class=docright>
alternative for <a href=#ConfigRemove>ConfigRemove</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#SetDefault>SetDefault</a></td><td class=docright>
alternative for <a href=#ConfigSetDefault>ConfigSetDefault</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#SetDefaults>SetDefaults</a></td><td class=docright>
alternative for <a href=#ConfigSetDefaults>ConfigSetDefaults</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#Update>Update</a></td><td class=docright>
alternative for <a href=#ConfigUpdate>ConfigUpdate</a>()
</td></tr>
<tr><td class=docleft width=1%><a href=#Write>Write</a></td><td class=docright>
alternative for <a href=#ConfigWrite>ConfigWrite</a>()
</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=TConfig_functions></a>Functions Summary</th></tr>
<tr><td class=docleft width=1%><a href=#Create>Create</a></td><td class=docright>
alternative for <a href=#CreateConfig>CreateConfig</a>()
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Add>
<tr><td class=doctop colspan=2>Method Add(thisKey:String,value:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigAdd>ConfigAdd</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Clear>
<tr><td class=doctop colspan=2>Method Clear()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigClear>ConfigClear</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Contains>
<tr><td class=doctop colspan=2>Method Contains:Int(thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigContains>ConfigContains</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetDefault>
<tr><td class=doctop colspan=2>Method GetDefault:String(thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigGetDefault>ConfigGetDefault</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetFloat>
<tr><td class=doctop colspan=2>Method GetFloat:Float(thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigGetFloat>ConfigGetFloat</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetInt>
<tr><td class=doctop colspan=2>Method GetInt:Int(thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigGetInt>ConfigGetInt</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetOptionPath>
<tr><td class=doctop colspan=2>Method GetOptionPath:String(thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigGetOptionPath>ConfigGetOptionPath</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetString>
<tr><td class=doctop colspan=2>Method GetString:String(thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigGetString>ConfigGetString</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Read>
<tr><td class=doctop colspan=2>Method Read()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigRead>ConfigRead</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Remove>
<tr><td class=doctop colspan=2>Method Remove(thisKey:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigRemove>ConfigRemove</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=SetDefault>
<tr><td class=doctop colspan=2>Method SetDefault(thisKey:String,value:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigSetDefault>ConfigSetDefault</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=SetDefaults>
<tr><td class=doctop colspan=2>Method SetDefaults(thisMap:TMap)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigSetDefaults>ConfigSetDefaults</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Update>
<tr><td class=doctop colspan=2>Method Update:Int(thisKey:String,value:String,autoCreate:Int=True)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigUpdate>ConfigUpdate</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Write>
<tr><td class=doctop colspan=2>Method Write()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#ConfigWrite>ConfigWrite</a>()</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Create>
<tr><td class=doctop colspan=2>Function Create:TConfig(thisPath:String,autoRead:Int=False)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>alternative for <a href=#CreateConfig>CreateConfig</a>()</td></tr>
</table>
<br>
<h2 id=modinfo>Module Information</h2>
<table width=100%>
<tr><th width=1%>Version</th><td>1.2</td></tr>
<tr><th width=1%>Author</th><td>Jonathan Decker</td></tr>
<tr><th width=1%>License</th><td>GNU GPL v3</td></tr>
<tr><th width=1%>SVN</th><td>http://jmd-blitzmax-modules.googlecode.com/svn/trunk/jmd.mod/cfg.mod</td></tr>
<tr><th width=1%>History</th><td>1.2</td></tr>
<tr><th width=1%>History</th><td>Added ConfigRemove() function / Remove() method</td></tr>
<tr><th width=1%>History</th><td>1.1</td></tr>
<tr><th width=1%>History</th><td>Changed how history is annotated</td></tr>
<tr><th width=1%>History</th><td>Changed SVN information</td></tr>
<tr><th width=1%>History</th><td>1.0</td></tr>
<tr><th width=1%>History</th><td>Initial release.</td></tr>
</body></html>
